package sige

class RelatorioMensalController {

    def index() { redirect (action: "show" ) }
    
    def show(){
        Date mes
        if(params.mes){
            mes = params.mes
        }else{
            mes = new Date()
        }
        
        def service = new RelatorioMensalService()
        
        def despesasInstance = service.getOrdens("Despesa" , mes)
        
        def receitasInstance = service.getOrdens("Receita", mes)
        
        def receitasTotal = service.getTotal(receitasInstance)
        
        def despesasTotal = service.getTotal(despesasInstance)
        
        [despesasInstance : despesasInstance , receitasInstance: receitasInstance, 
            mes: mes, receitasTotal: receitasTotal , despesasTotal: despesasTotal]
    }
    
    def porOrdem(){
        Calendar c = mes.toCalendar()
        c[Calendar.DAY_OF_MONTH] = 1
        Date inicio = c.time
        c[Calendar.DATE] = c.getActualMaximum(Calendar.DATE)
        Date fim = c.time
        
        def results = Pagamento.withCriteria{
            and {
                between('dataDePagamento', inicio, fim)
                movimentacao {
                    ordem{
                        eq("nome", ordem)
                    }
                }
            }
            maxResults(params.max)
            firstResult(params.offset)
        }
        
        
        [resultados : results]
    }
}


